import axios from 'axios'
import { message } from 'antd'
const baseURL = 'http://127.0.0.1:8080'

const instance = axios.create({
  // TODO 1. 基础地址，超时时间
  baseURL: baseURL,
  timeout: 10000
})
//请求拦截器
instance.interceptors.request.use(
  (config) => {
    return config
  },
  (err) => Promise.reject(err)
)
//响应拦截器
instance.interceptors.response.use(
  (res) => {
    //这里都需要res.data，才能访问正常的数据
    if (res.data.code === 200) {
      return res
    }
    res.data.message && message.error(res.data.message)
    return Promise.reject(res.data)
  },
  (err) => {
    // 处理AbortController的错误(会多次捕获，这里直接拒绝，但是不做消息提示)
    if (err.name === 'CanceledError') {
      return Promise.reject(err)
    }
    // 默认错误
    err.response.data.message && message.error(err.response.data.message)
    return Promise.reject(err)
  }
)

export default instance
export { baseURL }

